
package com.azt.api.service;

import com.azt.api.pojo.Dictionary;

import java.util.List;
import java.util.Map;

/**
 * 
 * @author  张栋
 * @version  [版本号, 2014-4-11]
 * @see  [相关类/方法]
 * @since  [产品/模块版本]
 */
public interface DictionaryService {

	/** 
	 * 根据父id 获取所有子节点
	 * @author  张栋
	 * @param i
	 * @see [类、类#方法、类#成员]
	 */
	List<Dictionary> getDictionByParentId(Integer i);
	
	
	/**
	 * 根据父code获取所有子节点
	 * @param code
	 * @return
	 */
	List<Dictionary> getDictionByParentCode(String code);

	/**
	 * 根据父code获取所有子节点并且子节点拥有孩子
	 * @param code
	 * @return
	 */
	List<Dictionary> getDictionWithChildByParentCode(String code);

	/** 
	 * @author  张栋
	 * @param id
	 * @return
	 * @see [类、类#方法、类#成员]
	 */
	Dictionary getDictionById(Integer id);

	/** 
	 * 删除父子节点
	 * @author  张栋
	 * @param id
	 * @see [类、类#方法、类#成员]
	 */
	void deleteAllById(Integer id);
	
	Dictionary getDictionByCode(String code);


	void saveOrUpdate(Dictionary old);


	void save(Dictionary diction);

	/**
	 * 获取中国省份信息
	 * @return
	 * @author 张栋  2016年5月13日上午9:11:33
	 */
	public Map<String,String> getChinaProvinces();
	
	
	/**
	 * @Description 根据形如"1,2,3,4,5"的ids进行查找出数据字典集合
	 * @param ids
	 * @return String   返回 name组合在一起的字符串，用逗号间隔
	 */
	String findByIds(String ids);
	
	/**
	 * @Description 根据形如"1,2,3,4,5"的codes进行查找出数据字典集合
	 * @param codes
	 * @return 返回 name组合在一起的字符串，用逗号间隔
	 */
	String findByCodes(String codes);
	
	/**
	 * 根据形如"1,2,3,4,5"的codes以及父节点进行查找出数据字典集合
	 * @param codes
	 * @param pid
	 * @return
	 */
	String findByCodesAndPid(String codes,String pid);

    /**
     * 校验是否有相同code的数据字典
     * @param diction
     * @return
     */
    boolean findOrtherDiction(Dictionary diction);

}
